package com.ruoyi.project.system.setting.mapper;

import com.ruoyi.project.system.setting.domain.TbParamSetting;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 基本参数设置Mapper接口
 * 
 * @author kangjie
 * @date 2019-12-28
 */
public interface TbParamSettingMapper 
{
    /**
     * 查询基本参数设置
     * 
     * @param
     * @return 基本参数设置
     */
    public TbParamSetting selectTbParamSettingById(String id);

    /**
     * 查询基本参数设置列表
     * 
     * @param tbParamSetting 基本参数设置
     * @return 基本参数设置集合
     */
    public List<TbParamSetting> selectTbParamSettingList(TbParamSetting tbParamSetting);

    /**
     * 新增基本参数设置
     * 
     * @param tbParamSetting 基本参数设置
     * @return 结果
     */
    public int insertTbParamSetting(TbParamSetting tbParamSetting);

    /**
     * 修改基本参数设置
     * 
     * @param tbParamSetting 基本参数设置
     * @return 结果
     */
    public int updateTbParamSetting(TbParamSetting tbParamSetting);

    /**
     * 删除基本参数设置
     * 
     * @param
     * @return 结果
     */
    public int deleteTbParamSettingById(String id);

    /**
     * 批量删除基本参数设置
     * 
     * @param
     * @return 结果
     */
    public int deleteTbParamSettingByIds(String[] id);

    /**
     * 查询启用数据条数
     * @return
     */
    public int getTbParamSettingCount();

    /**
     * 修改数据状态
     * @param tbParamSetting
     * @return
     */
    public int updateFlag(TbParamSetting tbParamSetting);

    /**
     * 获取基本参数
     * @return
     */
    public TbParamSetting getParam();

    /**
     * 保存plc发送的状态
     * @param fOpen
     * @param startStatus
     * @param model
     * @return
     */
    public int savePlcStatus(@Param("startStatus") String startStatus,
    		@Param("model") String model,
    		@Param("count") String count,
    		@Param("error") String error,
    		@Param("is_complete") String is_complete);

    /**
     * 获取某日的登录次数
     * @param map
     * @return
     */
    public Map<String, Long> getLoginDayCount(Map<String,Integer> map);

    /**
     * 获取近5日登录次数总和
     * @return
     */
    public int getLoginCount();

    /**
 * 获取某日的扫描次数
 * @param map
 * @return
 */
public Map<String, Long> getScanDayCount(Map<String,Integer> map);

    /**
     * 获取近5日扫描次数总和
     * @return
     */
    public int getScanCount();

    /**
     * 获取某日的自动操作次数
     * @param map
     * @return
     */
    public Map<String, Long> getAutoLoginDayCount(Map<String,Integer> map);

    /**
     * 获取近5日自动操作次数总和
     * @return
     */
    public int getAutoLoginCount();

    /**
     * 获取某日的半自动操作次数
     * @param map
     * @return
     */
    public Map<String, Long> getSemiAutoOperationDayCount(Map<String,Integer> map);

    /**
     * 获取近5日半自动操作次数总和
     * @return
     */
    public int getSemiAutoOperationCount();


}
